#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "Util.h"

#ifndef PROCESSO_H
#define PROCESSO_H


//int numeroProcesso = 0;

#define TAM_VETOR 500
//Struct Principal
typedef struct Processo
{
  //ID do Processo
  long int ID;

  //Criador do Processo
  char strCriador[TAM_VETOR];

  //Comando a ser executado
  char strComando[TAM_VETOR];

}TProcesso;

typedef struct ListaProcesso
{
    //Ponteiro para proximo elemento da fila
    TProcesso* prox;
}TListaProcesso;


void Processo_Copia(TProcesso* origem, TProcesso* destino)
{

    destino->ID = origem->ID;

    //if(!destino->strComando)
       //destino->strComando = (char*) malloc(sizeof(char)* getStringTam(origem->strComando));

    CopiaString(origem->strComando,destino->strComando);


    //if(!destino->strCriador)
       //destino->strCriador = (char*) malloc(sizeof(char)* getStringTam(origem->strCriador));

    CopiaString(origem->strCriador,destino->strCriador);
}


void Processo_Imprimir(TProcesso* proc)
{
       printf("################################ \n");
        printf("Processo Numero: %ld \n",proc->ID);
        printf("Criador: %s \n",proc->strCriador);
        printf("Comando: %s \n",proc->strComando);
        printf("################################ \n");
}


void Processo_Libera(TProcesso* proc)
{
    if(!proc)
    {
        printf("Processo_Libera -Processo NULO");
        return;
    }

    free(proc);
}

int Processo_Executa(TProcesso proc)
{
    return system(proc.strComando);
}


#endif

//#######################################################################################







